import { _decorator, Component, Button, sys, native } from 'cc';
const { ccclass, property } = _decorator;

@ccclass('LoginPanel')
export default class LoginPanel extends Component {
    public static Instance: LoginPanel;
    @property(Button)
    Button_login: Button | null = null;
    // androidClassPath: string = "org/cocos2dx/javascript/S_TapCore"; // 需要修改为AdSdkManager对应的位置
    androidClassPath: string = "com/cocos/game/S_TapCore"; // 需要修改为AdSdkManager对应的位置
    //    // public static onJavaCallLogin(msg) {
    //    //     console.log("onJavaCallLogin----------");
    //    //     console.log(msg);
    //    //     LoginPanel.Instance.Button_login.node.active = false;
    //    // }
    onLoad() {
        LoginPanel.Instance = this;
    }
    async start() {
        this.ShowOn();

        console.log("LoginPanel-start");

        // await new Promise(res => this.scheduleOnce(res, 1));

        if (sys.platform === sys.Platform.ANDROID) {
            let callJavaParams: any = {};
            let callJavaParamsStr = JSON.stringify(callJavaParams);
            // jsb.reflection.callStaticMethod(this.androidClassPath, "CocosLoginstart", "(Ljava/lang/String;)V", callJavaParamsStr);
            native.reflection.callStaticMethod(this.androidClassPath, "CocosLoginstart", "(Ljava/lang/String;)V", callJavaParamsStr);
        }
        else {
            this.ShowOff();
        }

        // // this.ShowOn();
    }
    IsLogin() {
        console.log("cocos=IsLogin");

        let callJavaParams: any = {};
        let callJavaParamsStr = JSON.stringify(callJavaParams);
        native.reflection.callStaticMethod(this.androidClassPath, "IsLogin", "(Ljava/lang/String;)V", callJavaParamsStr);
    }
    On_Button_login() {
        console.log("cocos=On_Button_login");

        let callJavaParams: any = {};
        let callJavaParamsStr = JSON.stringify(callJavaParams);
        native.reflection.callStaticMethod(this.androidClassPath, "Login", "(Ljava/lang/String;)V", callJavaParamsStr);
    }
    ShowOn() {
        this.node.active = true;
        this.AddListener();
        this.Refresh();
    }
    ShowOff() {
        this.node.active = false;
        this.RemoveListener();
    }
    AddListener() {
        this.Button_login.node.on('click', this.On_Button_login, this);
    }
    RemoveListener() {
        this.Button_login.node.off('click', this.On_Button_login, this);
    }
    Refresh() {

    }

    //    // callJavaFun(adJavaFunName, adCodeId: string, params) {
    //    //     // if (params == null || params == undefined) {
    //    //     //     // eslint-disable-next-line no-param-reassign
    //    //     //     params = {};
    //    //     // }
    //    //     let callJavaParams: any = {};
    //    //     // callJavaParams.adJavaFunName = adJavaFunName;
    //    //     // callJavaParams.adCodeId = adCodeId;
    //    //     // // callJavaParams.adChanelType = adChanelType;
    //    //     // if (params.data) {
    //    //     //     for (const key in params.data) {
    //    //     //         if (Object.prototype.hasOwnProperty.call(params.data, key)) {
    //    //     //             callJavaParams[key] = params.data[key];
    //    //     //         }
    //    //     //     }
    //    //     // }
    //    //     let callJavaParamsStr = JSON.stringify(callJavaParams);
    //    //     // let canCallAdCode = this.checkCanCallAdCode(adJavaFunName, callJavaParamsStr);
    //    //     // if (!canCallAdCode) {
    //    //     //     return;
    //    //     // }
    //    //     // console.log("callJavaFun", adJavaFunName, adCodeId, callJavaParamsStr);
    //    //     // return jsb.reflection.callStaticMethod(this.androidClassPath, "showAd", "(Ljava/lang/String;)V", callJavaParamsStr);
    //    //     jsb.reflection.callStaticMethod(this.androidClassPath, "IsLogin", "(Ljava/lang/String;)V", callJavaParamsStr);
    //    // }
}